package com.medicine.hbp.uitl;

import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MD5 {
//	private MD5(){
//		throw new SysException("无法初始化加密工具类");
//	}

	/**
	 * MD5加密
	 * @param str
	 * @return
	 */
	public static String getMD5String(String str) {
		try{
			byte[] res=str.getBytes();
			MessageDigest md = MessageDigest.getInstance("MD5".toUpperCase());
			byte[] hash=md.digest(res);
//            for(int i=0;i<result.length;i++){
//                md.update(result[i]);
//            }
//            byte[] hash=md.digest();
			StringBuffer d=new StringBuffer("");
			for(int i=0;i<hash.length;i++){
				int v=hash[i] & 0xFF;
				if(v<16) d.append("0");
				d.append(Integer.toString(v,16).toUpperCase()+"");
			}
			return d.toString();
		}catch(Exception e){
			return "";
		}
	}
	/**
	 * 获取时间格式
	 * @return
	 */
	public static String getData() {
		Date dt=new Date();
		SimpleDateFormat matter1=new SimpleDateFormat("yyyyMMddHHmmss");
		return matter1.format(dt);
	}
	public static String getSeq(String id,String datetime){
		return id+datetime+getRandomValue();
	}
	/*产生8位16进制的数*/
	public static String getRandomValue() {
		String str = "";
		for (int i = 0; i < 8; i++) {
			char temp = 0;
			int key = (int) (Math.random() * 2);
			switch (key) {
				case 0:
					temp = (char) (Math.random() * 10 + 48);//产生随机数字
					break;
				case 1:
					temp = (char) (Math.random()*6 + 'a');//产生a-f
					break;
				default:
					break;
			}
			str = str + temp;
		}
		return str;
	}
}
